<?php
class ProveedorController extends AppController 
{
	var $name = 'Proveedor';
	var $layout =  "ajax";
	var $components = array('Interfaz','Vista');
	var $helpers = array('Interfaz','Vista','Ayuda');
	var $uses = array('Proveedor');
	public function beforeFilter(){
  		$this->validar();
  	}
  	
 	function index()
	{
 	}

 	public function listado_proveedor($busq=null) {	 		
		$this->set('busq',$busq);
 		$this->permisos_menu_individual('proveedor');
		$total=$this->Proveedor->find('count',array('conditions'=> array("Proveedor.id >"=>'0')));
		$data=$this->Proveedor->find('all',array('conditions'=> array("Proveedor.id >"=>'0'),'limit'=>MAX_PAGI));
		if($total>MAX_PAGI) $mos=MAX_PAGI;
		else $mos=$total;
		$this->set('data',$data);
		$this->Vista->title('Proveedores Encontrados (Mostrando '.$mos.' de '.$total.' Registros Encontrados)');
	}

	public function nuevo($div='vista',$divlistado='vista') 
	{	
		$this->permisos_accion_individual('proveedor','nuevo','estatus'); // mensaje que se quiere mostrar
		$this->set('div',$div);
		$this->set('divlistado',$divlistado);
		$this->set('lista_estados',$this->Utilitario->lista_estados());
	}

	public function buscar_municipio($estado_id=null) {
	$this->set('lista_municipios',$this->Utilitario->lista_municipios($estado_id));
	}

	public function guardar($vent=null) {
		$this->permisos_accion_individual('proveedor','nuevo','estatus'); // mensaje que se quiere mostrar
		$data=$this->request->data;
        if(!$this->Vista->empyt($data,array('telefono','municipio_id'))){
			extract($data);
			$this->Proveedor->query('BEGIN WORK');
		    $d['Proveedor']['estatus']=1;
		    $d['Proveedor']['rif']=$this->Interfaz->cedulasinguion($this->Utilitario->mayuscula($rif));
			$d['Proveedor']['nombre']=$this->Utilitario->mayuscula($nombre);
			$d['Proveedor']['direccion']=$this->Utilitario->mayuscula($direccion);
			$d['Proveedor']['telefono']=$telefono;
			$d['Proveedor']['estado_id']=$estado_id;
			$d['Proveedor']['municipio_id']=$municipio_id;

				if($this->Proveedor->save($d)){
					$this->Vista->mensaje("Proveedor Guardado Exitosamente!!!",'EXITO');
					$this->Proveedor->query('COMMIT');
					$this->Vista->cerrar_ventana($vent);
				}
				else{
					$this->Vista->mensaje("Ocurrio un error actualizando proveedores",'ERROR');
					$this->Proveedor->query('ROLLBACK');	
				}	

			}		
			
		$this->listado_proveedor();
		$this->render('listado_proveedor');
	}


	public function ver_dato_proveedor($id=null,$div='vista',$divlistado='vista') {
		$this->permisos_opcion_individual('proveedor','estatus','ver');
		if(isset($id)){
			$id=$this->Interfaz->id($id);
			$datos=$this->Proveedor->find('first',array('conditions'=>array('Proveedor.id'=>$id)));
		if(isset($datos['Proveedor']['id'])){
			$this->set('div',$div);
			$this->set('divlistado',$divlistado);
			$this->set('lista_municipios',$this->Utilitario->lista_municipios($datos['Proveedor']['estado_id']));
			$this->set('lista_estados',$this->Utilitario->lista_estados());
			$this->set('data',$datos);
		}
		else{
				$this->Vista->mensaje("Estas intentando violar la seguridad agropatria",'ERROR');
				$this->render("../".PRINCIPAL."/mensajes");
			}			
		}
		else{
			$this->Vista->mensaje("Debes Indicar el Proveedor!!!",'INFORMACION');
			$this->render("../".PRINCIPAL."/mensajes");
		}

	}

	public function modificar_dato_proveedor($id=null,$div='vista',$divlistado='vista') {
		$this->permisos_opcion_individual('proveedor','estatus','ver');
		if(isset($id)){
			$id=$this->Interfaz->id($id);
			$datos=$this->Proveedor->find('first',array('conditions'=>array('Proveedor.id'=>$id)));
		if(isset($datos['Proveedor']['id'])){
			$this->set('div',$div);
			$this->set('divlistado',$divlistado);
			$this->set('lista_municipios',$this->Utilitario->lista_municipios($datos['Proveedor']['estado_id']));
			$this->set('lista_estados',$this->Utilitario->lista_estados());
			$this->set('data',$datos);
		    $this->set('id',$id);
		}
		else{
				$this->Vista->mensaje("Estas intentando violar la seguridad agropatria",'ERROR');
				$this->render("../".PRINCIPAL."/mensajes");
			}			
		}
		else{
			$this->Vista->mensaje("Debes Indicar el Proveedor!!!",'INFORMACION');
			$this->render("../".PRINCIPAL."/mensajes");
		}

	}

public function modificar($id=null,$vent=null)
	{
		$data=$this->request->data;
		$this->permisos_opcion_individual('proveedor','estatus','modificar');
		if(!$this->Vista->empyt($data,array('telefono','municipio_id'))){
			extract($data);
		    if(isset($id)){
		   		$id=$this->Interfaz->id($id);
				$datos=$this->Proveedor->find('first',array('conditions'=>array('Proveedor.id'=>$id)));
					$data['Proveedor']['id']=$id;
					$data['Proveedor']['nombre']=$this->Utilitario->mayuscula($nombre);
					$data['Proveedor']['telefono']=$telefono;
					$data['Proveedor']['direccion']=$this->Utilitario->mayuscula($direccion);
				    $data['Proveedor']['estado_id']=$estado_id;
				    $data['Proveedor']['municipio_id']=$municipio_id;				  
					$this->Proveedor->query('BEGIN WORK');	
					if($this->Proveedor->save($data)){
                        $this->Vista->mensaje("Proveedor Modificado Exitosamente",'Exito');
						$this->Proveedor->query('COMMIT');
						$this->Vista->cerrar_ventana($vent);

	                }
				    else{
						$this->Vista->mensaje("Ocurrio un error modificando el Proveedor",'ERROR');
						$this->Proveedor->query('ROLLBACK');
					} 				
			}
			else{
				$this->Vista->mensaje("Estas intentando violar la seguridad agropatria",'ERROR');
				$this->Proveedor->query('ROLLBACK');
			}
		}
			$this->listado_proveedor();
			$this->render('listado_proveedor');
	     	
	}

	public function dato_proveedor($rif=null){
		if(isset($rif)){
			$rif=$this->Interfaz->cedulasinguion($this->Utilitario->mayuscula($rif));
			$d=$this->Proveedor->find('first',array('conditions'=> array("Proveedor.rif"=>$rif, "Proveedor.estatus"=>1)));
			     
			     if(isset($d['Proveedor']['id']) && $d['Proveedor']['id'] > 0){
			     	$this->Vista->mensaje("¡El Proveedor $rif ya existe!",'ERROR');  
				    echo "<script type='text/javascript'>
				    document.getElementById('rif').value='';
			        document.getElementById('nombre').value='';
			        document.getElementById('telefono').value='';
					document.getElementById('direccion').value='';
					document.getElementById('estado_id').value='';
					document.getElementById('municipio_id').value='';
				</script>";

			    }
		}
		$this->render("../".PRINCIPAL."/mensajes");
	}


	public function anular($id=null)
	{
		$this->permisos_opcion_individual('proveedor','estatus','anular');
		   if(isset($id)){
				$id=$this->Interfaz->id($id);
				$datos=$this->Proveedor->find('first',array('fields'=>array('Proveedor.id','Proveedor.estatus'),'conditions'=>array('Proveedor.id'=>$id)));
				if(isset($datos['Proveedor']['id'])&&($datos['Proveedor']['estatus']==1)){			
					$data['Proveedor']['id']=$id;
					$data['Proveedor']['estatus']=2;
					$this->Proveedor->query('BEGIN WORK');
					if($this->Proveedor->save($data)){
						$this->Proveedor->query('COMMIT');
                    	$this->Vista->mensaje("Proveedor Anulado Exitosamente",'Exito');
					}
					else{
			            $this->Vista->mensaje("Ocurrio un error Anulando el Proveedor",'ERROR');
						$this->Proveedor->query('ROLLBACK');
					}			
	            }	
				else{
					$this->Vista->mensaje("Estas intentando violar la seguridad agropatria",'ERROR');
				}
			}
			else{
				$this->Vista->mensaje("Estas intentando violar la seguridad agropatria",'ERROR');;
			}
			$this->listado_proveedor();
			$this->render('listado_proveedor'); 	
	}


}
